云平台时间同步规划
时间同步简介
云平台通过Chronyc服务进行时间同步,Chrony是一个开源自由的网络时间协议NTP的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc:
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
- NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
ZStack中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。NTP与chrony不能同时存在,只能用其中一个,并将另一个mask掉。
最佳实践
管理节点时间同步标准方案:
若集群存在内部时间源,优先考虑其中一个管理节点A同步客户时间源,其他节点同步管理节点A。
若集群没有内部时间源,但是管理节点可以访问外网,优先考虑其中一个管理节点A同步阿里云时间源,其他节点同步管理节点A。
- 若集群存在内部时间且要求所有节点均同步至内部时间源,需要注意是双管理节点配置文件均要调整为内部时间源IP。
- 若没有任何时间源且不能通外网,优先考虑管理节点A做时间源,其他节点同步管理节点A。
- 若没有任何时间源且不能通外网,需要管理节点与浏览器时间同步,则需要手动调整管理节点时间。
云平台时间同步最佳实践
物理机时间管理方案
当前云平台的时间源管理推荐架构,集群内网服务器同步内网时间源,内网时间源同步公网时间源的方式,具体场景如下图:
内部时间源管理方案
物理机添加到云平台,默认会读取管理节点zstack.properties文件里面的chrony.serverIp来作为物理机的时间源,推荐chrony.serverIp为内网server时间源,即为企业内部的时间服务器。若企业内部没有单独时间服务器,一般选择管理节点机器作为集群时间源。集群中的各个物理机时间主动同步管理节点zstack.properties文件的chrony.serverIP时间源。
注:双管理节点的场景,安装高可用节点的时候需要指定一个时间服务器作为时间源,即内网server时间源机器或者其中管理节点。
外部时间源管理方案
内网server时间服务器统一同步集群内部服务器时间,内网server时间源单独同步外网时间源,另外为保证内网server时间源的正确性,建议内网时间源通过多个外部时间源。若集群中机器可以直接通外网,集群中机器也可以直接同步公网的时间源。
内网server时间源(内部时间服务器或者管理节点)需要在 /etc/chrony.conf 文件增加外部server端地址进行时间同步。同时需要确保外部时间源 allow 允许内网时间源服务器可以访问。具体配置步骤如下:
- 配置外网server时间源
# vim /etc/chrony.conf
# 内网server服务器 /etc/chrony.conf文件末尾添加 server 时钟服务器ip iburst 保存退出,可以添加多个时间源,建议添加公网时间源,使用前请先ping对应的域名查看网络是否可达和相应的访问速度。需要注意的是若server端是域名,需要在/etc/resolv.conf 加上相应的dns解析地址。
- 重启内网时间源server chronyd服务
# systemctl restart chronyd.service
3.重启集群内其他节点的chrony服务
# systemctl restart chronyd.service
4.检查时间同步是否正常
# chronyc sources -v
检查所有节点的时间同步状态,time server节点是否跟外部server时间设备同步,其他节点是否跟time server同步;“ ^* ”表示时间同步成功
Chronyd服务会自动同步软件时间到硬件时间,即当chronyc sources -v 执行后,结果输出为“ ^* ”即代表修改成功,当前同步的为该节点时间源信息。
注意事项
- ZCE存储3.x低版本时间同步时需停业务。
- ZStone存储调整时间需全面停业务。
- 云平台升级后需要检查双管理节点时间同步情况。
- 双管理节点不能互相同步,双管理节点的/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties配置文件需要设置为同一个管理节点,比如全部设置为MN1,不能全部分别指定自身MN地址;
- 云平台管理节点运维变更如替换双管理节点、修改双管理节点IP等操作后需同步检查时间同步情况。
- 双管理节点配置文件调整时间源后,重连物理机将自动刷新时间源,管理节点除外。
- ZStone存储初始化时,指定的时间源需要与Cloud MN节点配置的时间源保持一致,否则重启MN将重新下发配置。